|
|
@@ -390,104 +390,118 @@ def statistic_distributor(request):
|
390
|
390
|
except AdministratorInfo.DoesNotExist:
|
391
|
391
|
return response(AdministratorStatusCode.ADMINISTRATOR_NOT_FOUND)
|
392
|
392
|
|
393
|
|
- logs = SaleclerkSubmitLogInfo.objects.filter(ymd__gte=start_time, ymd__lte=end_time, distributor_name__contains=distributor_name, model_uni_name__contains=model_name, test_user=False, dupload=False, test_sn=False, status=True)
|
394
|
|
-
|
395
|
|
- daily_logs = list(logs.values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
396
|
|
- daily_code1_logs = list(logs.filter(code_version=1).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
397
|
|
- daily_code1_hasScan_logs = list(logs.filter(code_version=1, has_scan=True).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
398
|
|
- daily_code2_logs = list(logs.filter(code_version=2).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
399
|
|
- daily_code2_hasScan_logs = list(logs.filter(code_version=2, has_scan=True).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
400
|
|
-
|
401
|
|
- i1 = 0
|
402
|
|
- i2 = 0
|
403
|
|
- i3 = 0
|
404
|
|
- i4 = 0
|
405
|
|
- for i in range(0, len(daily_logs)):
|
406
|
|
- daily_logs[i]['code1'] = 0
|
407
|
|
- daily_logs[i]['code2'] = 0
|
408
|
|
- daily_logs[i]['has_code1_scan_num'] = 0
|
409
|
|
- daily_logs[i]['has_code2_scan_num'] = 0
|
410
|
|
- if i1 < len(daily_code1_hasScan_logs) and daily_logs[i]['ymd'] == daily_code1_hasScan_logs[i1]['ymd']:
|
411
|
|
- daily_logs[i]['has_code1_scan_num'] = daily_code1_hasScan_logs[i1]['num']
|
412
|
|
- i1 += 1
|
413
|
|
-
|
414
|
|
- if i2 < len(daily_code1_logs) and daily_logs[i]['ymd'] == daily_code1_logs[i2]['ymd']:
|
415
|
|
- daily_logs[i]['code1'] = daily_code1_logs[i2]['num']
|
416
|
|
- i2 += 1
|
417
|
|
-
|
418
|
|
- if i3 < len(daily_code2_logs) and daily_logs[i]['ymd'] == daily_code2_logs[i3]['ymd']:
|
419
|
|
- daily_logs[i]['code2'] = daily_code2_logs[i3]['num']
|
420
|
|
- i3 += 1
|
421
|
|
-
|
422
|
|
- if i4 < len(daily_code2_hasScan_logs) and daily_logs[i]['ymd'] == daily_code2_hasScan_logs[i4]['ymd']:
|
423
|
|
- daily_logs[i]['has_code2_scan_num'] = daily_code2_hasScan_logs[i4]['num']
|
424
|
|
- i4 += 1
|
425
|
|
-
|
426
|
|
- model_logs = list(logs.values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
427
|
|
- model_code1_logs = list(logs.filter(code_version=1).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
428
|
|
- model_code1_hasScan_logs = list(logs.filter(code_version=1, has_scan=True).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
429
|
|
- model_code2_logs = list(logs.filter(code_version=2).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
430
|
|
- model_code2_hasScan_logs = list(logs.filter(code_version=2, has_scan=True).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
431
|
|
-
|
432
|
|
- i1 = 0
|
433
|
|
- i2 = 0
|
434
|
|
- i3 = 0
|
435
|
|
- i4 = 0
|
436
|
|
- for i in range(0, len(model_logs)):
|
437
|
|
- model_logs[i]['code1'] = 0
|
438
|
|
- model_logs[i]['code2'] = 0
|
439
|
|
- model_logs[i]['has_code1_scan_num'] = 0
|
440
|
|
- model_logs[i]['has_code2_scan_num'] = 0
|
441
|
|
- if i1 < len(model_code1_hasScan_logs) and model_logs[i]['model_uni_name'] == model_code1_hasScan_logs[i1]['model_uni_name']:
|
442
|
|
- model_logs[i]['has_code1_scan_num'] = model_code1_hasScan_logs[i1]['num']
|
443
|
|
- i1 += 1
|
444
|
|
-
|
445
|
|
- if i2 < len(model_code1_logs) and model_logs[i]['model_uni_name'] == model_code1_logs[i2]['model_uni_name']:
|
446
|
|
- model_logs[i]['code1'] = model_code1_logs[i2]['num']
|
447
|
|
- i2 += 1
|
448
|
|
-
|
449
|
|
- if i3 < len(model_code2_logs) and model_logs[i]['model_uni_name'] == model_code2_logs[i3]['model_uni_name']:
|
450
|
|
- model_logs[i]['code2'] = model_code2_logs[i3]['num']
|
451
|
|
- i3 += 1
|
452
|
|
-
|
453
|
|
- if i4 < len(model_code2_hasScan_logs) and model_logs[i]['model_uni_name'] == model_code2_hasScan_logs[i4]['model_uni_name']:
|
454
|
|
- model_logs[i]['has_code2_scan_num'] = model_code2_hasScan_logs[i4]['num']
|
455
|
|
- i4 += 1
|
456
|
|
-
|
457
|
|
- model_logs.sort(key=lambda k: (-k['num']))
|
458
|
|
-
|
459
|
|
- distributor_logs = list(logs.values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
460
|
|
- distributor_code1_logs = list(logs.filter(code_version=1).values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
461
|
|
- distributor_code1_hasScan_logs = list(logs.filter(code_version=1, has_scan=True).values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
462
|
|
- distributor_code2_logs = list(logs.filter(code_version=2).values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
463
|
|
- distributor_code2_hasScan_logs = list(logs.filter(code_version=2, has_scan=True).values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
464
|
|
-
|
465
|
|
- i1 = 0
|
466
|
|
- i2 = 0
|
467
|
|
- i3 = 0
|
468
|
|
- i4 = 0
|
469
|
|
- for i in range(0, len(distributor_logs)):
|
470
|
|
- distributor_logs[i]['code1'] = 0
|
471
|
|
- distributor_logs[i]['code2'] = 0
|
472
|
|
- distributor_logs[i]['has_code1_scan_num'] = 0
|
473
|
|
- distributor_logs[i]['has_code2_scan_num'] = 0
|
474
|
|
- if i1 < len(distributor_code1_hasScan_logs) and distributor_logs[i]['distributor_name'] == distributor_code1_hasScan_logs[i1]['distributor_name']:
|
475
|
|
- distributor_logs[i]['has_code1_scan_num'] = distributor_code1_hasScan_logs[i1]['num']
|
476
|
|
- i1 += 1
|
477
|
|
-
|
478
|
|
- if i2 < len(distributor_code1_logs) and distributor_logs[i]['distributor_name'] == distributor_code1_logs[i2]['distributor_name']:
|
479
|
|
- distributor_logs[i]['code1'] = distributor_code1_logs[i2]['num']
|
480
|
|
- i2 += 1
|
481
|
|
-
|
482
|
|
- if i3 < len(distributor_code2_logs) and distributor_logs[i]['distributor_name'] == distributor_code2_logs[i3]['distributor_name']:
|
483
|
|
- distributor_logs[i]['code2'] = distributor_code2_logs[i3]['num']
|
484
|
|
- i3 += 1
|
485
|
|
-
|
486
|
|
- if i4 < len(distributor_code2_hasScan_logs) and distributor_logs[i]['distributor_name'] == distributor_code2_hasScan_logs[i4]['distributor_name']:
|
487
|
|
- distributor_logs[i]['has_code2_scan_num'] = distributor_code2_hasScan_logs[i4]['num']
|
488
|
|
- i4 += 1
|
489
|
|
-
|
490
|
|
- distributor_logs.sort(key=lambda k: (-k['num']))
|
|
393
|
+ daily_logs = SaleclerkSubmitLogInfo.objects.raw('select id, ymd, Count(*) AS num, Count(code_version=1 or NULL) AS code1 , Count(code_version=2 or NULL) AS code2, Count((code_version=1 AND has_scan=True) or NULL) AS has_code1_scan_num, Count((code_version=2 AND has_scan=True) or NULL) AS has_code2_scan_num FROM integral_saleclerksubmitloginfo where ymd >= %s AND ymd <= %s AND test_user=False AND dupload=False AND test_sn=False AND status=True AND CONTAINS(model_uni_name, %s) AND CONTAINS(distributor_name, %s) GROUP BY ymd;', [start_time, end_time, model_name, distributor_name])
|
|
394
|
+
|
|
395
|
+ daily_logs = [{'ymd': log.ymd, 'num': log.num, 'code1': log.code1, 'code2': log.code2, 'has_code1_scan_num': log.has_code1_scan_num, 'has_code2_scan_num': log.has_code2_scan_num} for log in daily_logs]
|
|
396
|
+
|
|
397
|
+ if model_name == '':
|
|
398
|
+ model_logs = SaleclerkSubmitLogInfo.objects.raw('select id, model_uni_name, Count(*) AS num, Count(code_version=1 or NULL) AS code1 , Count(code_version=2 or NULL) AS code2, Count((code_version=1 AND has_scan=True) or NULL) AS has_code1_scan_num, Count((code_version=2 AND has_scan=True) or NULL) AS has_code2_scan_num FROM integral_saleclerksubmitloginfo where ymd >= %s AND ymd <= %s AND test_user=False AND dupload=False AND test_sn=False AND status=True AND CONTAINS(distributor_name, %s) GROUP BY model_uni_name;', [start_time, end_time, distributor_name])
|
|
399
|
+
|
|
400
|
+ model_logs = [{'model_uni_name': log.model_uni_name, 'num': log.num, 'code1': log.code1, 'code2': log.code2, 'has_code1_scan_num': log.has_code1_scan_num, 'has_code2_scan_num': log.has_code2_scan_num} for log in daily_logs]
|
|
401
|
+
|
|
402
|
+ if distributor_name == '':
|
|
403
|
+ distributor_logs = SaleclerkSubmitLogInfo.objects.raw('select id, distributor_name, Count(*) AS num, Count(code_version=1 or NULL) AS code1 , Count(code_version=2 or NULL) AS code2, Count((code_version=1 AND has_scan=True) or NULL) AS has_code1_scan_num, Count((code_version=2 AND has_scan=True) or NULL) AS has_code2_scan_num FROM integral_saleclerksubmitloginfo where ymd >= %s AND ymd <= %s AND test_user=False AND dupload=False AND test_sn=False AND status=True AND CONTAINS(model_uni_name, %s) GROUP BY distributor_name;', [start_time, end_time, model_name])
|
|
404
|
+
|
|
405
|
+ distributor_logs = [{'distributor_name': log.distributor_name, 'num': log.num, 'code1': log.code1, 'code2': log.code2, 'has_code1_scan_num': log.has_code1_scan_num, 'has_code2_scan_num': log.has_code2_scan_num} for log in daily_logs]
|
|
406
|
+
|
|
407
|
+ # daily_logs = list(logs.values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
|
408
|
+ # daily_code1_logs = list(logs.filter(code_version=1).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
|
409
|
+ # daily_code1_hasScan_logs = list(logs.filter(code_version=1, has_scan=True).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
|
410
|
+ # daily_code2_logs = list(logs.filter(code_version=2).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
|
411
|
+ # daily_code2_hasScan_logs = list(logs.filter(code_version=2, has_scan=True).values('ymd').annotate(num=Count('pk')).order_by('ymd'))
|
|
412
|
+
|
|
413
|
+ # i1 = 0
|
|
414
|
+ # i2 = 0
|
|
415
|
+ # i3 = 0
|
|
416
|
+ # i4 = 0
|
|
417
|
+ # for i in range(0, len(daily_logs)):
|
|
418
|
+ # daily_logs[i]['code1'] = 0
|
|
419
|
+ # daily_logs[i]['code2'] = 0
|
|
420
|
+ # daily_logs[i]['has_code1_scan_num'] = 0
|
|
421
|
+ # daily_logs[i]['has_code2_scan_num'] = 0
|
|
422
|
+ # if i1 < len(daily_code1_hasScan_logs) and daily_logs[i]['ymd'] == daily_code1_hasScan_logs[i1]['ymd']:
|
|
423
|
+ # daily_logs[i]['has_code1_scan_num'] = daily_code1_hasScan_logs[i1]['num']
|
|
424
|
+ # i1 += 1
|
|
425
|
+
|
|
426
|
+ # if i2 < len(daily_code1_logs) and daily_logs[i]['ymd'] == daily_code1_logs[i2]['ymd']:
|
|
427
|
+ # daily_logs[i]['code1'] = daily_code1_logs[i2]['num']
|
|
428
|
+ # i2 += 1
|
|
429
|
+
|
|
430
|
+ # if i3 < len(daily_code2_logs) and daily_logs[i]['ymd'] == daily_code2_logs[i3]['ymd']:
|
|
431
|
+ # daily_logs[i]['code2'] = daily_code2_logs[i3]['num']
|
|
432
|
+ # i3 += 1
|
|
433
|
+
|
|
434
|
+ # if i4 < len(daily_code2_hasScan_logs) and daily_logs[i]['ymd'] == daily_code2_hasScan_logs[i4]['ymd']:
|
|
435
|
+ # daily_logs[i]['has_code2_scan_num'] = daily_code2_hasScan_logs[i4]['num']
|
|
436
|
+ # i4 += 1
|
|
437
|
+
|
|
438
|
+ # if model_name:
|
|
439
|
+ # model_logs = list(logs.values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
|
440
|
+ # model_code1_logs = list(logs.filter(code_version=1).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
|
441
|
+ # model_code1_hasScan_logs = list(logs.filter(code_version=1, has_scan=True).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
|
442
|
+ # model_code2_logs = list(logs.filter(code_version=2).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
|
443
|
+ # model_code2_hasScan_logs = list(logs.filter(code_version=2, has_scan=True).values('model_uni_name').annotate(num=Count('pk')).order_by('model_uni_name'))
|
|
444
|
+
|
|
445
|
+ # i1 = 0
|
|
446
|
+ # i2 = 0
|
|
447
|
+ # i3 = 0
|
|
448
|
+ # i4 = 0
|
|
449
|
+ # for i in range(0, len(model_logs)):
|
|
450
|
+ # model_logs[i]['code1'] = 0
|
|
451
|
+ # model_logs[i]['code2'] = 0
|
|
452
|
+ # model_logs[i]['has_code1_scan_num'] = 0
|
|
453
|
+ # model_logs[i]['has_code2_scan_num'] = 0
|
|
454
|
+ # if i1 < len(model_code1_hasScan_logs) and model_logs[i]['model_uni_name'] == model_code1_hasScan_logs[i1]['model_uni_name']:
|
|
455
|
+ # model_logs[i]['has_code1_scan_num'] = model_code1_hasScan_logs[i1]['num']
|
|
456
|
+ # i1 += 1
|
|
457
|
+
|
|
458
|
+ # if i2 < len(model_code1_logs) and model_logs[i]['model_uni_name'] == model_code1_logs[i2]['model_uni_name']:
|
|
459
|
+ # model_logs[i]['code1'] = model_code1_logs[i2]['num']
|
|
460
|
+ # i2 += 1
|
|
461
|
+
|
|
462
|
+ # if i3 < len(model_code2_logs) and model_logs[i]['model_uni_name'] == model_code2_logs[i3]['model_uni_name']:
|
|
463
|
+ # model_logs[i]['code2'] = model_code2_logs[i3]['num']
|
|
464
|
+ # i3 += 1
|
|
465
|
+
|
|
466
|
+ # if i4 < len(model_code2_hasScan_logs) and model_logs[i]['model_uni_name'] == model_code2_hasScan_logs[i4]['model_uni_name']:
|
|
467
|
+ # model_logs[i]['has_code2_scan_num'] = model_code2_hasScan_logs[i4]['num']
|
|
468
|
+ # i4 += 1
|
|
469
|
+
|
|
470
|
+ # model_logs.sort(key=lambda k: (-k['num']))
|
|
471
|
+
|
|
472
|
+ # if distributor_name:
|
|
473
|
+ # distributor_logs = list(logs.values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
|
474
|
+ # distributor_code1_logs = list(logs.filter(code_version=1).values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
|
475
|
+ # distributor_code1_hasScan_logs = list(logs.filter(code_version=1, has_scan=True).values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
|
476
|
+ # distributor_code2_logs = list(logs.filter(code_version=2).values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
|
477
|
+ # distributor_code2_hasScan_logs = list(logs.filter(code_version=2, has_scan=True).values('distributor_name').annotate(num=Count('pk')).order_by('distributor_name'))
|
|
478
|
+
|
|
479
|
+ # i1 = 0
|
|
480
|
+ # i2 = 0
|
|
481
|
+ # i3 = 0
|
|
482
|
+ # i4 = 0
|
|
483
|
+ # for i in range(0, len(distributor_logs)):
|
|
484
|
+ # distributor_logs[i]['code1'] = 0
|
|
485
|
+ # distributor_logs[i]['code2'] = 0
|
|
486
|
+ # distributor_logs[i]['has_code1_scan_num'] = 0
|
|
487
|
+ # distributor_logs[i]['has_code2_scan_num'] = 0
|
|
488
|
+ # if i1 < len(distributor_code1_hasScan_logs) and distributor_logs[i]['distributor_name'] == distributor_code1_hasScan_logs[i1]['distributor_name']:
|
|
489
|
+ # distributor_logs[i]['has_code1_scan_num'] = distributor_code1_hasScan_logs[i1]['num']
|
|
490
|
+ # i1 += 1
|
|
491
|
+
|
|
492
|
+ # if i2 < len(distributor_code1_logs) and distributor_logs[i]['distributor_name'] == distributor_code1_logs[i2]['distributor_name']:
|
|
493
|
+ # distributor_logs[i]['code1'] = distributor_code1_logs[i2]['num']
|
|
494
|
+ # i2 += 1
|
|
495
|
+
|
|
496
|
+ # if i3 < len(distributor_code2_logs) and distributor_logs[i]['distributor_name'] == distributor_code2_logs[i3]['distributor_name']:
|
|
497
|
+ # distributor_logs[i]['code2'] = distributor_code2_logs[i3]['num']
|
|
498
|
+ # i3 += 1
|
|
499
|
+
|
|
500
|
+ # if i4 < len(distributor_code2_hasScan_logs) and distributor_logs[i]['distributor_name'] == distributor_code2_hasScan_logs[i4]['distributor_name']:
|
|
501
|
+ # distributor_logs[i]['has_code2_scan_num'] = distributor_code2_hasScan_logs[i4]['num']
|
|
502
|
+ # i4 += 1
|
|
503
|
+
|
|
504
|
+ # distributor_logs.sort(key=lambda k: (-k['num']))
|
491
|
505
|
|
492
|
506
|
return response(200, 'Get Distributor Statistic Success', u'获取经销商统计成功', data={
|
493
|
507
|
'daily_logs': daily_logs,
|